package Array;

import java.util.*;

/**
 * 描述
 * 给定一个无重复元素的整数数组nums，请你找出其中没有出现的最小的正整数
 *
 * 进阶： 空间复杂度 O(1)，时间复杂度 O(n)
 *
 * 数据范围:
 * -231<=nums[i]<=231-1
 * 0<=len(nums)<=5*105
 * 示例1
 * 输入：
 * [1,0,2]
 * 返回值：
 * 3
 * 示例2
 * 输入：
 * [-2,3,4,1,5]
 * 返回值：
 * 2
 * 示例3
 * 输入：
 * [4,5,6,8,9]
 * 返回值：
 * 1
 * */
class minNumberDisappeared {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型
     */
    public int minNumberDisappeared (int[] nums) {
        // write code here
        Arrays.sort(nums);
        int flag=1;
        for(int i=0;i<nums.length;i++){
            if(nums[i]<=0){
                continue;
            }
            //如果当前值和flag相等，则flag++,否则说明缺少的就是flag
            if(nums[i]==flag){
                flag++;
            }else{
                return flag;
            }
        }
        //如果遍历到末尾，说明下一个元素就是缺失的
        return flag;
    }
}
